[Home] Python으로 돌아가기

Arduino 14. 엑셀 연동

목차

1. 확장파일 안내
2. 거리 측정 코드 (mm)
3. 거리 측정 코드 (cm)
4. 온습도 측정 코드

1. 확장파일 안내

이번주는 엑셀을 활용한 실시간 데이터 저장 방식을 실습합니다.

2. 거리 측정 코드 (mm 출력)


const int TriggerPin = 8;
const int EchoPin = 9;
long Duration = 0;
float Distance;
int i = 1;
unsigned long startTime;

void setup() {
  Serial.begin(9600);
  pinMode(TriggerPin, OUTPUT);
  pinMode(EchoPin, INPUT);
  Serial.println("CLEARDATA");
  Serial.println("LABEL,No.,Distance(mm)");
  startTime = millis();
}

void loop() {
  if (millis() - startTime > 60000) {
    Serial.println("1분이 경과하여 프로그램을 종료합니다.");
    noInterrupts();
    while(true);
  }

  digitalWrite(TriggerPin, HIGH);
  delay(15);
  digitalWrite(TriggerPin, LOW);

  Duration = pulseIn(EchoPin, HIGH);
  Distance = (Duration / 2.0) * 0.34;

  Serial.print("DATA,");
  Serial.print(i++);
  Serial.print(",");
  Serial.println(Distance);
  delay(500);
}
  

3. 거리 측정 코드 (cm 출력)


const int TriggerPin = 8;
const int EchoPin = 9;
long Duration = 0;
float Distance;
int i = 1;
unsigned long startTime;

void setup() {
  Serial.begin(9600);
  pinMode(TriggerPin, OUTPUT);
  pinMode(EchoPin, INPUT);
  Serial.println("CLEARDATA");
  Serial.println("LABEL,No.,Distance");
  startTime = millis();
}

void loop() {
  if (millis() - startTime > 60000) {
    Serial.println("1분이 경과하여 프로그램을 종료합니다.");
    noInterrupts();
    while(true);
  }

  digitalWrite(TriggerPin, HIGH);
  delay(15);
  digitalWrite(TriggerPin, LOW);

  Duration = pulseIn(EchoPin, HIGH);
  Distance = ((340 * Duration) / 10000) / 2;

  Serial.print("DATA,");
  Serial.print(i++);
  Serial.print(",");
  Serial.println(Distance);
  delay(500);
}
  

4. 온습도 측정 코드


#include 

DFRobot_DHT11 DHT;
#define DHT11_PIN A0
float hum;
float temp;
unsigned long counter = 0;

void setup() {
  Serial.begin(9600);
  Serial.println("CLEARDATA");
  Serial.println("LABEL,Counter,Temp,Humi");
}

void loop() {
  DHT.read(DHT11_PIN);
  hum = DHT.humidity;
  temp = DHT.temperature;

  counter++;

  Serial.print("DATA,");
  Serial.print(counter);
  Serial.print(",");
  Serial.print(temp);
  Serial.print(",");
  Serial.println(hum);
  delay(1000);
}